package cn.edu.jxust.common.domain.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author QiuKangming
 * @since 2020-07-11
 */

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName("t_resource")
public class SysResource implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 资源id号
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 父资源的id号, 为0代表没有父资源,为顶级资源
     */
    private Integer parentId;

    /**
     * 资源名称
     */
    private String resourceName;

    /**
     * 资源码
     */
    private String resourceCode;

    /**
     * 资源类型标识(0 目录, 1 菜单, 2 按钮)
     */
    private Integer resourceType;

    /**
     * 资源 ur l, 菜单
     */
    private String url;

    /**
     * 资源图标
     */
    private String icon;

    /**
     * 资源排序字段
     */
    private Integer orderNum;

    /**
     * 资源创建的时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createDatetime;

    /**
     * 资源创建者名称
     */
    private String createUsername;

    /**
     * 资源更新者名称
     */
    private String updateUsername;

    /**
     * 资源修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateDatetime;

    /**
     * 记录状态
     */
    @TableLogic
    private Integer status;

}
